package com.openApi.filters;

import cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil;
import org.springframework.stereotype.Component;

import java.util.function.Predicate;

/**
 * 是否记录请求体的body, 根据配置文件里的path进行生效
 * 配置文件里搜索 @requestBodyPredicate 定位到该路由规则
 *
 * @author dushougudu
 */
@Component
public class RequestBodyPredicate implements Predicate {

    /**
     * 是否缓存 请求体里的body 值
     *
     * @param body 请求体里的对象
     * @return boolean  false: 不缓存, true: 缓存, 在下面的filter里获取方式: exchange.getAttribute("cachedRequestBodyObject");
     */
    @Override
    public boolean test(Object body) {
        JSON json = JSONUtil.parse(body);
        String test = json.getByPath("test", String.class);
        return "1".equals(test);
    }
}
